访问作为参数传递的数组元素
我有一个方法,它将数组作为另一个类的参数:
public void memPass(Memory[] memLocList) {
memList = memLocList;
for (int i = 0; i < 10; i++) {
System.out.println(memList[i].getSomething());
}
}
-编辑- 上面打印出10个值(整数),但如果我在另一个方法中尝试相同的方法,使用0&;10我得到了NPE
有人能告诉我如何从另一个方法访问这个数组的元素吗?这个方法也接受另一个类的参数
我正试图按照以下思路做一些事情:
public void accessArray(int mem) {
int someInt = memList[mem].getSomething();
}
-编辑-抱歉,我应该补充一点,这会产生NullPointerException
-新编辑-
好的,我现在编辑了代码,所以我在课堂上的所有内容是:
public class PLoop {
// instance variable
public Memory[] memlist;
// method 1
public void memPass(Memory[] memLocList) {
memList = memLocList;
System.out.println(memList.length);
}
// method 2
public void accessArray(int mem) {
System.out.println(memList.length);
}
}
第一种方法打印一个表示“memList”长度的整数,第二种方法给出一个NPE
# 1 楼答案
如果
memList
是该类的一个实例变量,并且在两种情况下(两种方法)都是同一个类,那么这显然是memList
的某个索引处的null
值# 2 楼答案
如果我理解的没错,您希望能够存储memLocList,然后稍后再访问它吗?如果是这样,我看不出创建实例变量会有什么问题
当然,我不再使用Java,所以可能无法创建和分配这样的实例变量。但是你可以把元素储存在另一个容器里
抱歉,如果我有语法错误。但你明白了重点